function OSGBNode() {
    this.name = "";
    this.root = null;
    this.parent = null;
    this.state = OSGBNodeState.UnLoad;
}

Object.assign(OSGBNode.prototype, {

    setRoot: function (root) {
        this.root = root;
    },

    getRoot: function () {
        return this.root;
    },

    setParent: function (parent) {
        this.parent = parent;
    },

    getParent: function () {
        return this.parent;
    },

    setName: function (name) {
        this.name = name;
    },

    getName: function () {
        return this.name;
    },

    setState: function (state) {
        this.state = state;
    },

    getState: function () {
        return this.state;
    },

    isGroup: function () {
        return false;
    },

    isLodGroup: function () {
        return false;
    },

    isGeoNode: function () {
        return false;
    },

    isVisible: function (camera) {
        return false;
    },

    getWorldBoundingBox: function () {
        return null;
    },

    traverse: function (camera, tileset) {
        return null;
    },

    accept: function (camera, tileset) {
        return null;
    },

    releaseChild: function (node, tileset) {
        if (node != null) {
            node.release();
            tileset.deleteNode(node);
        }
    },

    release: function () {
        this.name = "";
        this.root = null;
        this.parent = null;
        this.state = OSGBNodeState.UnLoad;
    },

} );
